Micron Document
🎖️GitЯра🎖️

Node / meshcore / MeshCore / files / src / helpers / ClientACL.h

Displaying Raw • Download

src/helpers/ClientACL.h 890a2e2cffa98dea3ca88db3c3aba72ef23ff3f7 (890a2e2c) Text, 1.72 KB

Tff7b72#Tff7b72pragma once

Tff7b72#Tff7b72include T8b949e<Arduino.h> T8b949e// needed for PlatformIO
Tff7b72#Tff7b72include T8b949e<Mesh.h>
Tff7b72#Tff7b72include T8b949e<helpers/IdentityStore.h>

Tff7b72#Tff7b72define PERM_ACL_ROLE_MASK 3 T8b949e// lower 2 bits
Tff7b72#Tff7b72define PERM_ACL_GUEST 0
Tff7b72#Tff7b72define PERM_ACL_READ_ONLY 1
Tff7b72#Tff7b72define PERM_ACL_READ_WRITE 2
Tff7b72#Tff7b72define PERM_ACL_ADMIN 3

Tff7b72#Tff7b72define OUT_PATH_UNKNOWN 0xFF

Tff7b72struct T56d364ClientInfo Tb4b4b4{
Te6edf3meshTff7b72:Tff7b72:Te6edf3Identity Te6edf3idTb4b4b4;
Tffa657uint8_t Te6edf3permissionsTb4b4b4;
Tffa657uint8_t Te6edf3out_path_lenTb4b4b4;
Tffa657uint8_t Te6edf3out_pathTb4b4b4[Te6edf3MAX_PATH_SIZETb4b4b4]Tb4b4b4;
Tffa657uint8_t Te6edf3shared_secretTb4b4b4[Te6edf3PUB_KEY_SIZETb4b4b4]Tb4b4b4;
Tffa657uint32_t Te6edf3last_timestampTb4b4b4; T8b949e// by THEIR clock (transient)
Tffa657uint32_t Te6edf3last_activityTb4b4b4; T8b949e// by OUR clock (transient)
Tff7b72union Tb4b4b4{
Tff7b72struct Tb4b4b4{
Tffa657uint32_t Te6edf3sync_sinceTb4b4b4; T8b949e// sync messages SINCE this timestamp (by OUR clock)
Tffa657uint32_t Te6edf3pending_ackTb4b4b4;
Tffa657uint32_t Te6edf3push_post_timestampTb4b4b4;
Tffa657unsigned Tffa657long Te6edf3ack_timeoutTb4b4b4;
Tffa657uint8_t Te6edf3push_failuresTb4b4b4;
Tb4b4b4} Te6edf3roomTb4b4b4;
Tb4b4b4} Te6edf3extraTb4b4b4;
Tffa657bool Td2a8ffisAdminTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Tb4b4b4(Te6edf3permissions Tff7b72& Te6edf3PERM_ACL_ROLE_MASKTb4b4b4) Tff7b72=Tff7b72= Te6edf3PERM_ACL_ADMINTb4b4b4; Tb4b4b4}
Tb4b4b4}Tb4b4b4;

Tff7b72#Tff7b72ifndef MAX_CLIENTS
Tff7b72#Tff7b72define MAX_CLIENTS 20
Tff7b72#Tff7b72endif

Te6edf3class Te6edf3ClientACL Tb4b4b4{
Te6edf3FILESYSTEMTff7b72* Te6edf3_fsTb4b4b4;
Te6edf3ClientInfo Te6edf3clientsTb4b4b4[Te6edf3MAX_CLIENTSTb4b4b4]Tb4b4b4;
Tffa657int Te6edf3num_clientsTb4b4b4;

Te6edf3publicTff7b72:
Te6edf3ClientACLTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3memsetTb4b4b4(Te6edf3clientsTb4b4b4, T79c0ff0Tb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3clientsTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3num_clients Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3loadTb4b4b4(Te6edf3FILESYSTEMTff7b72* Te6edf3_fsTb4b4b4, Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3LocalIdentityTff7b72& Te6edf3self_idTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsaveTb4b4b4(Te6edf3FILESYSTEMTff7b72* Te6edf3_fsTb4b4b4, Tffa657bool Tb4b4b4(Tff7b72*Te6edf3filterTb4b4b4)Tb4b4b4(Te6edf3ClientInfoTff7b72*Tb4b4b4)Tff7b72=Tffa657NULLTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffclearTb4b4b4(Tb4b4b4)Tb4b4b4;

Te6edf3ClientInfoTff7b72* Td2a8ffgetClientTb4b4b4(Tff7b72const Tffa657uint8_tTff7b72* Te6edf3pubkeyTb4b4b4, Tffa657int Te6edf3key_lenTb4b4b4)Tb4b4b4;
Te6edf3ClientInfoTff7b72* Td2a8ffputClientTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3IdentityTff7b72& Te6edf3idTb4b4b4, Tffa657uint8_t Te6edf3init_permsTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffapplyPermissionsTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3LocalIdentityTff7b72& Te6edf3self_idTb4b4b4, Tff7b72const Tffa657uint8_tTff7b72* Te6edf3pubkeyTb4b4b4, Tffa657int Te6edf3key_lenTb4b4b4, Tffa657uint8_t Te6edf3permsTb4b4b4)Tb4b4b4;

Tffa657int Td2a8ffgetNumClientsTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3num_clientsTb4b4b4; Tb4b4b4}
Te6edf3ClientInfoTff7b72* Td2a8ffgetClientByIdxTb4b4b4(Tffa657int Te6edf3idxTb4b4b4) Tb4b4b4{ Tff7b72return Tff7b72&Te6edf3clientsTb4b4b4[Te6edf3idxTb4b4b4]Tb4b4b4; Tb4b4b4}
Tb4b4b4}Tb4b4b4;

Served by rngit 1.5.0 - Generated in 0.12s